
package server.shops;

import java.util.List;
import client.PurePlayer;
import client.PureAccount;
import packet.transfer.write.Packet;
import server.shops.AbstractPlayerStore.BoughtItem;
import tools.Pair;

public interface IPurePlayerShop {
    public final static byte OMOK = 1;
    public final static byte MATCH_CARD = 2;
    public final static byte PLAYER_SHOP = 4;
    public final static byte HIRED_MERCHANT = 5;
    
    
    public String getOwnerName();
    public String getDescription();

    public List<Pair<Byte, PurePlayer>> getVisitors();
    public List<PurePlayerShopItem> getItems();

    public boolean isOpen();
    public boolean removeItem(int item);
    public boolean isOwner(PurePlayer chr);

    public byte getShopType();

    public byte getVisitorSlot(PurePlayer visitor);
    public byte getFreeSlot();
    public int getItemId();
    public int getMeso();
    public int getOwnerId();
    public int getOwnerAccId();

    public void setOpen(boolean open);
    public void setMeso(int meso);
    public void addItem(PurePlayerShopItem item);
    public void removeFromSlot(int slot);
    public void broadcastToVisitors(Packet packet);
    public void addVisitor(PurePlayer visitor);
    public void removeVisitor(PurePlayer visitor);
    public void removeAllVisitors(int error, int type);
    public void buy(PureAccount c, int item, short quantity);
    public void closeShop(boolean saveItems, boolean remove);
    public int getMaxSize();
    public int getSize();
    public List<BoughtItem> getBoughtItems();
    public void setPassword(String password);
    public String getPassword();
    public List<Pair<String, Byte>> getMessages();

}
